Grid or table-based applications or displays, e.g., spreadsheet applications or grids, may be used to organize, access, format, and display data, e.g., financial data, from various data sources for use in generating and interacting with various reports, e.g., financial reports. In some approaches, a notation, e.g. a formula, may be included in a cell in a spreadsheet in order to retrieve data from a data source to be displayed in that cell. Further, in some approaches, data from a data source may be imported into a proprietary database so that the spreadsheet application can access the data via a spreadsheet addin or via specialized formulas, for example.
In some examples, grid applications or grid displays may be provided to a user over a network, e.g., the internet, via a website accessed via a browser running on a client computer. Further, data from various different data sources with different formats, configurations, and security settings may be imported into a grid display so that a user may interact with the imported data in the grid. Data sources may be accessed in a variety of ways. For example, data sources may be local to a client device or may be external to the client device and accessed via a local network or may be cloud-based and accessible via the internet, for example. Further, in some examples, a user may publish or share data in a grid with other users over various networks.
The inventor herein has recognized various issues with such approaches for managing data in a grid. For example, approaches which use a formula in a cell of a grid to retrieve data to that cell may perform slowly on large reports which retrieve data to a large number of cells where each cell in the large number of cells includes a formula. Further, such approaches may increase a user's difficulty in formatting retrieved data for presentation in a report. For example, on a standard report for a year trend, such approaches may have 12,000 separate formulas (e.g., 12 months×1000 rows) in 12,000 different cells and this may multiply greatly when this is used for hundreds of cost centers, for example.
As another example, in approaches which use a formula in a cell of a grid or table to retrieve data to that cell, the actual data may not be copied to the cell but instead query results may be displayed in that cell. Thus, in such approaches, the data may not be accessible for viewing by users that do not have access to the system or addin used to import the data. In some cases, the users may be able to view the imported data, but not be able to freely work with the data since each data is represented by a formula that is not available to the user without the specialized addin.
As another example, approaches which import data from a data source into a proprietary database so that the a grid can access the data may increase delays in accessing and updating data, reduce accessibility to data, limit access to data that is transactional in nature, and increase resource drain. For example, when updating data in a report, a user may have to wait for updates to a proprietary database before data can be updated in the grid. As another example, different types of data, e.g. from different data sources, may have to be imported separately into the proprietary database before being accessed by the grid.
Further, in such approaches, a user may not be able to change how the data is displayed during an import, e.g., a user may not be able to customize where columns of data are placed/imported into a grid display. For example, such approaches may automatically import data from a data source into a contiguous range of cells in a grid without any options for customizing where and how the imported data is displayed in a grid during an import of data from the data source.
Further, such approaches may not take into account different security settings associated with different data sources for accessing data in different data sources. Thus, for example, data from a data source which requires a specific form of authentication to access and import data into a grid may not be accessible to a user of a grid application or display, or may require a series of manual authentication steps performed by a user to download secure data and then import or copy and paste the downloaded data into a grid or table for display.
Further, such approaches may lack security features for specifying if and how the data imported into a data grid may be published or shared. For example, a user may not have any options to customize security settings associated with a grid in order to securely share a data report with select users over a network, for example.
In one example approach, in order to at least partially address these issues, a method is provided for managing data in a grid. The method comprises importing data from a data source to a range of cells in a grid, where the range of cells is specified by a notation input associated with the grid, and where the notation input includes a key specifying the data source and security information associated with the data source.
In this way, the number of formulas used to create a report may be reduced. For example, a user may only use one formula associated with a notation input to import data versus 12,000 different formulas as in the example given above, thus increasing speed and efficiency in accessing, updating, and formatting data in a report.
Further, in this approach an open data structure may be utilized allowing a direct connection to any database or web service to retrieve data, thus reducing delays, reducing resource drain, and increasing versatility in report generation. Further still, in this approach, portability in sharing reports with users that do not have a specialized addin or formulas may be increased.
Further, in this approach, user control over data handling and display in a grid may be increased since a user may interact with various data sources via references in a notation input associated with a grid or via input parameters in one or more cells of the grid to specify target locations of where data is imported into the grid, formatting of imported data in the grid, filtering of imported data in the grid, and other presentation options of data displayed in the grid.
Further, by referencing security options associated with a particular data source in the notation input associated with the grid, a user may automatically access secured data within various different data sources. Thus, in this approach, data may be imported from various different data sources with different formats, configurations, or security settings via various different networks.
Further, in this approach, security features for specifying if and how a data grid may be referenced in a notation input so that a user may customize security settings associated with a grid in order to securely share the grid with select users over a network, for example.
This approach unites the best of a spreadsheet with data services or databases and when combined with the right measure of security, user options, and the ability to drill or link in context to other spreadsheets or areas, becomes far more than a reporting system or a method to collecting data. Such an approach provides a practical platform for solution development that is fast, secure, easy for users to utilize, leverages familiar technology to developers, is scalable while able to be focused on small needs, and leverages existing software most companies already own. For example, in this approach spreadsheets may be leveraged as an interactive thin client in various cloud environments to provide functionality for cloud spreadsheets without sacrificing the benefits of thin client spreadsheet cloud applications and while fortifying the ability for managing application code centrally. Furthermore, the functionality may be portable to all brands of cloud or locally installed spreadsheets due to its familiar formula based approach. Such an approach may be applied beyond spreadsheets into more general grid based presentations that exist outside a formal spreadsheet program. Furthermore, this approach may be expanded to other types of notations that provide similar function but are not directly associated with a cell of a grid.
It should be understood that this summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.